package jdbc;
/*
事务控制；
 */
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class Demo11 {
    public static void main(String[] args) {
        try(Connection connection=DBUtil.getConnection()) {
            //如果需要自行控制事物，需要通过Connection将自动提交事物关闭，默认是自动提交事物开启的；
            //该方法相当于执行了BEGIN（开启一个事物）;
            connection.setAutoCommit(false);
            String sql="DELETE FROM user WHERE id=?";
            PreparedStatement ps=connection.prepareStatement(sql);
            ps.setInt(1,2);
            int num=ps.executeUpdate();
            System.out.println(num>0?"删除成功":"删除失败");
            //connection.rollback();//回滚事务，意味着上面的DELETE操作不真正处理了；
           // System.out.println("事务回滚了！");
            connection.commit();//提交事务,意味着上面的DELETE操作真正处理了；
            System.out.println("事务提交了！");
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}
